package com.coderman.infosys.auth.domain.cachekey;

/**
 * Description:
 * date: 2022/1/9
 *
 * @author shenshuai
 * @version 1.0.0
 * @since JDK 1.8
 */
public class AuthCacheKeyConstant {

    /**
     * 单个权限code有哪些系统-菜单-按钮权限,这里根据数据量可以评估下，先暂定为
     * str 类型-->json
     */
    private static final String _AUTH_SYSTEM = ":AUTH:SYSTEM:";

    /**
     * 单个权限code有哪些应用-表-数据字段的权限
     * str 类型-->json
     */
    private static final String _AUTH_DATACOLUMN = ":AUTH:DATACOLUMN:";

    /**
     * 单个权限code有哪些省-城市-县/区的字段权限
     * str 类型-->json
     */
    private static final String _AUTH_ADDRESS = ":AUTH:ADDRESS:";

    /**
     * 单个权限code有哪些部门权限
     * set类型
     */
    private static final String _AUTH_DEPARTMENT = ":AUTH:DEPARTMENT:";


    /**
     * 单个用户有哪些职位权限
     * 这里可以自定义权限资源
     * 所以可以在权限依赖的这个资源去识别一个资源的对象
     * 这个资源应该是一种组合型的聚合根
     * set类型
     */
    private static final String _AUTH_JOBS = ":AUTH:JOB:";


    /**
     * 根据租户标示获取缓存信息
     * @param tenant
     * @param authCode
     * @return
     */
    public static String getAuthSystem(String tenant,String authCode){
        return tenant + _AUTH_SYSTEM + authCode;
    }

    /**
     * 根据租户标示获取缓存信息
     * @param tenant
     * @return
     */
    public static String getAuthDatacolumn(String tenant,String authCode){
        return tenant + _AUTH_DATACOLUMN + authCode;
    }


    /**
     * 根据租户标示获取缓存信息
     * @param tenant
     * @return
     */
    public static String getAuthAddress(String tenant,String authCode){
        return tenant + _AUTH_ADDRESS + authCode;
    }


    /**
     * 根据租户标示获取缓存信息
     * @param tenant
     * @return
     */
    public static String getAuthDepartment(String tenant,String authCode){
        return tenant + _AUTH_DEPARTMENT + authCode;
    }


    /**
     * 根据租户标示获取缓存信息
     * @param tenant
     * @return
     */
    public static String getAuthJobs(String tenant,String authCode){
        return tenant + _AUTH_JOBS + authCode;
    }



}
